Get /joint_states from a quadrotor - MoveIt!

asked 2014-07-05 10:39:54 -0500

TSC gravatar image

updated 2014-07-05 15:31:45 -0500


I'm trying to use MoveIt! as a motion planner to my quadrotor. I have rgbdslam running on it which gives me a /tf topic. Also have a optical flow module with a sonar which gives me linear velocities and height, but that is not already implemented in a node to get a better pose estimation. For now I just want a pose estimation based on rgbdslam /tf.

I checked that MoveIt! needs /joint_state topic being published but I don't know how to get this. Checking my graph nodes (this one: rosgraph.png ), I get /move_group being subscribed to /robot_state_publisher and to /joint_state_publisher, but none of this are subscribed to any topic, which is probably where the following problem exists:

I'm using hector_quadrotor quadrotor_with_asus.urdf.xacro (modified so to have the camera pointing in front as it is on my quad) to get a planner config to use in moveit. I set two links on it, namely base_link and the camera_link, in a group named Quadrotor. A virtual joint named "Base" connects the /base_link with the /map external frame that comes from rgbdslam.Then I setup sensors_rgbd.yaml to receive the point cloud from the camera driver directly, instead of getting the rgbdslam /batch_clouds, I'm using the fake_controller for now, but have one based on MultiDofFollowJointTrajectory.

Now the problem: roslaunching demo.launch of my created config package does gets the octomap being generated from the point cloud in Rviz, but seems like it doesn't update the octomap and the pose/orientation of the quad, and I think that's because the /joint_state isn't receiving any info about the quad pose.

So what I want to ask is how do I update the robot pose on Rviz? What node do I have to created to, for example, pick the /tf info from the camera, write it to /joint_state_publisher and get a /joint_state topic?

Thanks in advance!

edit retag flag offensive close merge delete


Hi, I've the same problem too. Did you solve the problem to publish over the /joint_states topic?

Andromeda gravatar image Andromeda  ( 2014-11-17 04:55:05 -0500 )edit

any solution yet?

Ryan_Dirgantara gravatar image Ryan_Dirgantara  ( 2018-06-08 13:11:40 -0500 )edit

Yes, just get rid of MoveIt! and don't use /joint_state for a multicopter. Use a TransformStamped instead and a continuous joint between your world frame and your copter frame. Using a TransformStamped, you can move and orient your multicopter around all three axis

Andromeda gravatar image Andromeda  ( 2022-06-29 16:18:58 -0500 )edit