Get /joint_states from a quadrotor - MoveIt!
Hi,
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!
Hi, I've the same problem too. Did you solve the problem to publish over the
/joint_states
topic?any solution yet?
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