trajectory logging for robot car running ROS

All discussions related to the Loco Positioning system
Post Reply
tobidelbruck
Beginner
Posts: 2
Joined: Thu Jan 18, 2018 8:58 pm

trajectory logging for robot car running ROS

Post by tobidelbruck »

We want to log trajectories for a robot car running ROS. Can we use a set of one Loco positioning node on the car, and 3 Loco positioning nodes (since car is on flat ground) and the ROS driver at https://github.com/bitcraze/lps-ros (documented at https://wiki.bitcraze.io/doc:lps:ros ) for this? I.e., we want the car to log its own trajectory in ROS as part of our ROS telemetry stream? We already have ROS running the car and logging other data to a rosbag.
Does this solution make sense? What do we have to do to recover the trajectory from the recorded Loco positioning node values?
Ideally, we set up our arena, and lay out 3 battery-powered nodes on the ground using a tape measure to get them in some rectangular arrangement. The one on the car is powered from the car's power.
Thanks for any advice on this.
arnaud
Bitcraze
Posts: 2538
Joined: Tue Feb 06, 2007 12:36 pm

Re: trajectory logging for robot car running ROS

Post by arnaud »

Carrying nodes on your cars and transmitting the data to ROS with the other telemetry could work. Sorry for the quite messy answer but I have tried to pack as many info as I though could be useful for you.

A couple of things though about using the node as a car: the node does not have the power or the code to run the localization algoritm, when used as a tag it allows to get the ranging raw values (distances to the anchors for TWR which is nice, raw packets for TDoA which requires a bit more work to be used). So there will be a little bit of work required on the robot part to get an actual position. For TWR there is already a ROS nodes for a particle filter and an LMS filter. One last point is that the node does not implement TDMA for TWR which means that for now only one node can be TWR tag, though it would not be too hard to port the Crazyflie TWR-TDMA algorithm back to the node.

In the end, nothing impossible, but it will require a bit of integration work. I will be glad to assist if you go this route. Depending of your robot architecture, it might just require a couple of ROS nodes. Just to be clear: the ROS package you liked is supposed to be used with a Crazyflie, not with a LPS node dirrectly.

Another solution would be to use a tag with an IMU that outputs the position directly. Currently that would mean using a Crazyflie as a positioning tag. The Crazyflie is able to output its position both via the radio link and via the USB port. If you have a system with a USB port on your cars you can get the position there and push it to ROS with your other data. Otherwise the existing ROS driver for Crazyflie and LPS can be used to get the data using Crazyradio. The only modification that will be required in that case is to 'lock' the Crazyflie Kalman filter on the ground.

As a side note, Bitcraze has been working on designing a standalone UWB tag with IMU that would just output position via USB or Serial port, we are very interested in getting feedback and input of what is needed for this kind of tag to be useful, for example what kind of mechanical attachment and communication protocol would be nice to have.
tobidelbruck
Beginner
Posts: 2
Joined: Thu Jan 18, 2018 8:58 pm

Re: trajectory logging for robot car running ROS

Post by tobidelbruck »

Arnaud, this is really helpful, thank you! And yes, we would be interested to have an integrated solution that allows a USB interface to an embedded linux machine on the robot with ROS node that delivers position messages. But the solution using a Crazyflie will work to start with, and we will work on the ROS side running Odroid to get something running. Thanks for the offer of help with this.
Post Reply