前言:实验室拥有的机器人平台是 cleanpath的jackal移动机器人,因为对jackal不熟悉,所幸有赖于闫工的热心帮忙和解惑,使得jackal底盘能快速搭建起来。
北京智科特机器人官网
智科特整合后的jackal代码
jackal官网代码下载
jackal官档
修改后,本人编译所用的jackal 功能包
如下为儿子一代雏形图
如下视频为使用PS4手柄控制jackal小车,并在 RVIZ上显示
搭建实验室3d slam 移动小车 3.1jackal移动小车平台调试
通过在官网上下载jackal的一些功能包,并进行编译 eg.编译时候会出现很多ROS包缺失的报错,缺啥装啥就行
值得注意的是,因为是在自己的工作空间上编译,需要添加 jackal的设备rules规则文件 jackal.rules 包含 连接jackal底板(stm32)的数据线和PS4的驱动设备序列号
jackal.rules
KERNEL=="ttyACM*", ATTRS{idVendor}=="0483", ATTRS{idProduct}=="5740", MODE:="0777", SYMLINK+="jackal"
# Udev rule for the PS4 controller
KERNEL=="js*", ATTRS{idVendor}=="8087", ATTRS{idProduct}=="07dc", SYMLINK="input/ps4"
KERNEL=="js*", ATTRS{idVendor}=="8087", ATTRS{idProduct}=="0aaa", SYMLINK="input/ps4"
# Alternate Udev rule for the PS4 controller (if it's detected as DualShock 4)
KERNEL=="js*", ATTRS{idVendor}=="054C", ATTRS{idProduct}=="05C4", SYMLINK="input/ps4"
将 rules 脚本 复制到 /etc/udev/rules.d 文件夹中即可
sudo cp jackal.rules -r /etc/udev/rules.d
打开catkin_ws/src/jackal/jackal-kinetic-devel/jackal_control/launch/teleop.launch
将 /dev/input/ds4x 话题 改为我们的topic /dev/input/ps4
修改后的 teleop.launch
<launch>
<arg name="joy_dev" default="/dev/input/ps4" />
<arg name="joystick" default="true" />
<group ns="bluetooth_teleop" if="$(arg joystick)">
<group unless="$(optenv JACKAL_PS3 0)" >
<rosparam command="load" file="$(find jackal_control)/config/teleop_ps4.yaml" />
<param name="joy_node/dev" value="$(arg joy_dev)" />
</group>
<group if="$(optenv JACKAL_PS3 0)" >
<rosparam command="load" file="$(find jackal_control)/config/teleop.yaml" />
<param name="joy_node/dev" value="$(arg joy_dev)" />
</group>
<node pkg="joy" type="joy_node" name="joy_node" />
<node pkg="teleop_twist_joy" type="teleop_node" name="teleop_twist_joy"/>
</group>
<node pkg="interactive_marker_twist_server" type="marker_server" name="twist_marker_server"/>
</launch>
roslaunch jackal_base base.launch