Технический форум по робототехнике.
Чугунный Дятел писал(а):robot_pose_ekf полезен если у вас помимо обычной одометрии есть ещё какая-то информация, например GPS, IMU, visual odometry. Иначе получите просто сглаживание. Тем более там скучный калман: он не читает cmd_vel, а команды скорости правильный калман должен учитывать.
В nav_msgs/Odometry указывается два TF фрейма: фрейм, относительно которого вы пишете суммарную одометрию (header.frame), как правило это "odom", и фрейм, относительно которого указывается скорость робота (child_frame), как правило там что-то типа "base_link"
Проверять показания одометрии можно в том же rviz, добавив оснастку Odometry и указав там соответствующую тему. Так же добавляем оснастку с TF и сравниваем, где находятся фреймы TF, а где соответствующая стрелка от Odometry
orcp2::copy_int32(dst+l, src->Encoder[i]);
l += sizeof(src->Encoder[i]);
l += orcp2::copy_int32(dst+l, src->Encoder[i]);
linvinus писал(а):noonv,
сравнивая ваш протокол с rosserial, обратил внимание на небольшой недочёт (на мой взгляд).
функции orcp2::copy* ничего не возвращают, хотя логичнее было бы если бы они возвращали длину скопированных данных, чтобы избежать двойного подсчёта длины
например есть
- Код: Выделить всё • Развернуть
orcp2::copy_int32(dst+l, src->Encoder[i]);
l += sizeof(src->Encoder[i]);
а лучше если будет
- Код: Выделить всё • Развернуть
l += orcp2::copy_int32(dst+l, src->Encoder[i]);
Чугунный Дятел писал(а):У нас такой тест правильности одометрии:
1. Открываем rviz,
2. Включаем рисование лазерного дальномера
3. В качестве базового фрейма ставим /odom
4. Едем в пределах метра.
При этом точки дальномера должны оставаться более менее неподвижными (в пределах погрешности одометрии). Лазерный дальномер можно заменить на kinect/xtion и смотреть на облако точек вместо скана, но суть та же: точки не должны убегать.
<launch>
<node pkg="rosserial_python" type="serial_node.py" name="my_serial" args=" ">
<param name="~port" value="/dev/ttyS2" />
<param name="~baud" value="500000" />
</node>
<node pkg="move_base_simple" type="move_base_simple" name="move_base_simple"/>
</launch>
Nesenin писал(а):http://www.kb-avrora.ru/map_room
lori писал(а):Народ, извиняюсь, что вклиниваюсь в вашу беседу.
hector_slam неплохая навигация, но для хороших дальномеров