前言:实验室拥有的机器人平台是 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