What is the planned TrajOpt integration to MoveIt release date?
I saw a commit about TrajOpt planner integration to MoveIt in moveit_planners on the master branch. However, building is ignored yet, and manually forcing building leads to errors. I am really looking forward to using TrajOpt as a MoveIt planner. Can you give me some information about the planned release date? Is it in the final stage? What are the broad steps need to be done to use it as a standard planner in MoveIt?
Asked by blabla on 2019-11-04 06:30:39 UTC
Answers
There is no planned released date yet. We are still working on it but slowly unfortunately. The dependencies to other repos are removed but still needs to have the collision cost function implemented. The current version should work fine for motion planning without any collision. Can you share the error that you receive when building it manually?
Asked by Omid on 2019-11-06 12:24:09 UTC
Comments
As @Omid said, we are continuing to push on this as a side project but do not have an client projects or grants funding this effort. If you wish to get involved, your participation is very welcomed!
Asked by Dave Coleman on 2019-11-06 14:58:02 UTC
Thank you for your answers!
I have some progress on building TrajOpt. Although I could not build master branch of moveit (https://github.com/ros-planning/moveit) , because of some trajopt dependencies (tried cloning tesseract and trajopt_ros, but didnt solve the issue), I managed to build your private repo (https://github.com/ommmid/moveit/tree/trajopt). However, executing with panda demo.launch pipeline:=trajopt, motion planning crashes. Do you have any tips? The error message is related to the convex solver:
Asked by blabla on 2019-11-06 23:07:20 UTC
bpmpd_caller: /home/.../catkin_ws/src/moveit/moveit_planners/trajopt/trajopt_sco/include/trajopt_sco/bpmpd_io.hpp:35: void bpmpd_io::ser(int, T&, bpmpd_io::SerMode) [with T = char]: Assertion `n == sizeof(T)' failed. [move_group-6] process has died [pid 20480, exit code -11, cmd /home/.../catkin_ws/devel/lib/moveit_ros_move_group/move_group --debug /joint_states:=/joint_states_desired __name:=move_group __log:=/home/.../.ros/log/4ee11648-0111-11ea-8baa-2016b9417490/move_group-6.log]. log file: /home/.../.ros/log/4ee11648-0111-11ea-8baa-2016b9417490/move_group-6*.log Aborted (core dumped)
Asked by blabla on 2019-11-06 23:07:38 UTC
All dependencies to tesseract or any other repo are removed in this trajopt PR. you should be fine working with my private repo
I think the reason that you get the error is that the moveit_tutorial package does not have this PR merged in. The last commit in trajopt PR works with seed trajectories but the demo.launch that you run does not have that implemented yet. So please go back to one commit before the last one, this commit. This works with moveit_tutorial [melodic-devel] branch that you are running.
Asked by Omid on 2019-11-09 16:31:33 UTC
Thank you! I managed to build and execute the launch file. I was able to plan in Rviz, too, though the motion planning fails in many cases, because the goal position is not matching with the planned goal. Do you know the reason for that?
An other topic. If I understand correctly, the collision cost/contraint is not implemented yet, so basically we need to "merge" collision_terms into MoveIt, to successfully avoid obstacles. Am I correct?
Asked by blabla on 2019-11-11 00:48:57 UTC
Your initial guess plays an important role in the optimization methods. So I would suggest to provide that yourself for problem_info.init_info.data which varies based on problem_info.init_info.type. As my last PR for moveit_tutorial is merged, you can see an example of creating initial guess or seed/reference trajectory. However, in motion planning display in rviz, you do not have control on the initial guess, then it is harder to find a solution for the motion planning problem. This initial guess was hard-coded before but now that it can be set by the user look here, you need to set the initial_info.type to STATIONARY (in the yaml file) if you want to use the motion planning display in rviz
For the second question: correct, collision cost is not implemented. we need to add "CollisionTermInfo" to the codebse in MoveIt
Asked by Omid on 2019-11-14 21:29:11 UTC
Thank you for your help and sorry for the late reply. I can plan with interpolated reference trajectory, and now I am planning to implement collision cost and constraint first for discrete time. My only concern is if there is a simple way to get the signed distance for the collisions in MoveIt. Is the function distanceRobot of CollisionWorldFCL what I need? I would be grateful for any help, because I am not up to date around the collision checking in MoveIt...
Asked by blabla on 2019-12-10 02:32:51 UTC
Comments
I don't believe there is a planned release date at the moment. As you can read in ros-planning/moveit#1593, this is an experimental planner right now, requiring a specially configured build environment and workshop, with some MoveIt dependencies configured specifically for this and dependencies on other PRs that have not been merged yet.
Perhaps @Dave Coleman can add some more info/background here.
Edit: @-mentioning Dave doesn't seem to work.
Asked by gvdhoorn on 2019-11-04 06:56:06 UTC