Closed YuanfaTao closed 6 years ago
@YuanfaTao wrote:
Why did you use 100 as the MAX_TRAJ_LENGTH,
because it was a suitable trade-off between maximum supported trajectory length and length of the array in rapid. Uploading trajectories is typically very fast (see #142), so there's no performance aspect to it.
can we direct impove it?
If you mean: can we change the value, then: yes. You should check the industrial_core
side of things as well to make sure there are no assumptions about the value being 100
there, but I don't recall anything like that.
If we cannot improve the trajectory size by direct modifying ROS_common.sys, is there any other solutions?
Right now there is no other option (at least not if you don't want to develop it), abb_driver
uses trajectory downloading. Streaming would remove this limitation, but will affect other aspects.
In the future we'll be migrating to an EGM+RWS based driver, which will not have this limitation.
See ros-industrial/industrial_core#147 for a related issue btw.
Closing due to inactivity.
Feel free to keep commenting on the issue though.
Is it possible to increase MAX_TRAJ_LENGTH?
When we tried to increase this value to 250 the controller was giving us type mismatch errors. Even though we just changed the number from 100 to 250.
Yes, it's possible, but you'll have to make sure to update your local copy of industrial_core
as well, as the same maximum length is encoded there.
@gavanderhoorn Could you please point where exactly in the Industrial Core the changes should be made? I did a search for the MAX_TRAJ_LENGTH keyword in the industrial core directory and nothing came back on the search.
Tried to find where this is referenced within industrial core package. Have not been able to find where exactly this value has been encoded. Some help on where this is would be much appreciated.
Apologies for my delayed reply. And for the confusion.
There is a maximum nr points to a trajectory as specified in industrial_robot_client
, but that is only for actual JointTraj
messages (here), but those are not used with abb_driver
.
abb_driver
uses a subclass of JointTrajectoryDownloader
which just loops over all points in a trajectory (here).
Hi, thanks for getting back. We solved the issue by deleting the ROS_trajectory variable from the program data in the controller, and by performing a rapid restart on the controller after changing the constant from 100 to 2000.
@jclinton830 hello, i have the same error with you. i tried to increase the value of MAX_TRAJ_LENGTH to 1000 the controller was giving us type mismatch errors. Can you describe in detail how you made it successful. thank you.
I've found that the MAX_TRAJ_LENGTH is defined in ROS_common.sys, which is 100.
https://github.com/ros-industrial/abb/blob/kinetic-devel/abb_driver/rapid/ROS_common.sys#L37
But, in my application, we may need download more than 100 trajectory points.
So, I have two questions:
i. why did you use 100 as the MAX_TRAJ_LENGTH, can we direct impove it?
ii. If we cannot improve the trajectory size by direct modifying ROS_common.sys, is there any other solutions?
Thanks!