How can we get each super beacon address from IMU data through ROS?

Frequent questions asked online, offline, in forums are answered here
Post Reply
kazu
Posts: 4
Joined: Wed Feb 03, 2021 9:23 pm

How can we get each super beacon address from IMU data through ROS?

Post by kazu »

Hello,

We are thinking of using multiple super beacons (now we have 2 of them as the mobile beacons) to get each position data and IMU data.
However, using ros_marvelmind_package, we can get address data for each beacon's position through /hedge_pos_a topic, but we cannot get them through /hedge_imu_raw.
It is pretty important for us to specify the beacon address for each IMU data.

Now I am trying to change the code to enable that, but it doesn't work well for now.
Do you have any solutions?

smoker77
Posts: 350
Joined: Sat Feb 06, 2016 4:03 pm

Re: How can we get each super beacon address from IMU data through ROS?

Post by smoker77 »

Hello,

Do you get IMU data directly from mobile beacon or from modem with 'IMU via modem' function enabled?
When you connect to mobile beacon, you can read only its own IMU data, IMU data from other beacons is not available.
If you receive data from modem, it can transmit IMU data from all mobile beacons with 'IMU via modem' option enabled.
But current version of /hedge_imu_raw doesn't support transmitting address of mobile beacon.
We will add this function in next update of ROS package.

If you need it now, you can rebuild the package - modify 'process_imu_raw_datagram' function in 'marvelmind_hedge.c' source file to parse address from data received from modem. Modem should send address of mobile beacon by offset 18, please see section 1.3 of the protocol:
https://marvelmind.com/pics/marvelmind_ ... rfaces.pdf
Then copy the received address to the message - see 'hedgeIMURawReceiveCheck' function in 'hedge_rcv_bin.cpp'.
If you don't want to create new topic, you can send address through one of compass fields of current topic /hedge_imu_raw, because compass fields are not used for Super-Beacons.
Or add new topic '/hedge_imu_raw_a' with 'uint8 address' field, we will add such topic in next update of the package and your code will be compatible with it.

Post Reply