transform from map to base_link
Hi, i am still working as hobbyist on my tracked self-made robot using ROS as middleware and am a bit confused at the moment.
What i have managed so far:
- There's a basecontroller node subscribing to /cmdvel and publishing wheelencoder- data in a custom message. Depending on /cmd_vel the robot moves around.
- i can teleop my robot with a gamepad connected to a workstation using joystickdriver/ joy-Topics and computing that joy-Messages into /cmdvel
- i have a node baseodometry which computes odometry from wheel-encoders and publishes to the Topic /odom (Pose and Velocities) and to /tf (the transform from frame odom to frame baselink)
- there is a package with an URDF, describing my robot with the frame base_link as parent
- that way the robot is simulated in rviz and i can see the model moving according to the commands i send. the base_link is moving relatively to the odom link. so everything seems correct so far
The tf tree at the moment is the following:
odom -> base_link -> all other links from the urdf (as wheels and so on, which are more for visualizing then really needed)
- One question is now a bit widely asked: How should i go on with setting up navigation stack in general?
- One Idea was to set up a node that publishes the map link. And as i read in REP 105, "The transform from map to baselink is computed by a localization component". As i understood this component should first receive the transform from odom to baselink (which is published from my node base_odometry), and uses this information to broadcast the transform from map to odom. Is there a premade ROS package already released for that task? Or do i have to make it myself and is that necessary at all and i am on the wrong track right now...
- Next thing i am trying on at the moment is setting up package robotposeekf, although i have no really use at the moment, lacking of other sensor data beneath wheel-encoders. But the idea was to set up a gps sensor in the future. But it's really confusing, because there's a new frame basefootprint. Should i just put that link into my urdf as parent from baselink? But as i do so, that's messing up my current setup for rviz and visualization in rviz isnt't working right anymore because of missing transforms from basefootprint to odom. Should i implement that transform in my node baseodometry instead of transform from odom to base_link or as a separate transform there or elsewhere?
As you and i see, i think i have reached a border from which on a hobbyist like me with no academic backround will have a hard way on going on... maybe someone could have a look at my coderepository on Github and have a look and giving tips how i should go on...
Asked by fabian77 on 2015-11-01 09:09:01 UTC
Comments
to Q.3: The way i implemented base_footprint: I added base_footprint as parent link of base_link in the URDF now and in my base_odometry i publish the transform from odom to base_footprint now instead of base_link. Visualization rviz seems ok now again. But I don't know, if it's the recommended way.
Asked by fabian77 on 2015-11-01 10:13:16 UTC