配置好ROS以后发现方向盘没有阻力,因此需要给G29加force-feedback(力反馈)。
步骤如下:
源码地址:NCNYNL/ROS-G29-力反馈:Logicool G29 转向力反馈控制的 ROS 包 (github.com)
特点:
- 用于控制方向盘的独立 ros 套件。(不依赖于其他 ros 包,如 ros-melodic-joy 等)
- 可以通过抛出 ros 消息来控制罗技 g29 方向盘的角度。
- 拥有两种控制模式 - 它们通过主题动态更改。
1、PID 控制模式
通过 PID 控制将轮子旋转到指定角度。此模式可以在您松开双手的情况下将车轮旋转到指定角度,因此此模式对自动驾驶系统的用户界面非常有用。
2、恒力模式
以指定的恒力将操纵盘旋转到指定的角度(最大力由 rosparam 指定)。此模式可以更轻松地在驾驶模拟器中手动控制车辆。如果您在双手离开的情况下使用并旋转力超过 0.3,则轮子会左右移动。因此,如果您想在放开双手的情况下使用它,最好使用 PID 模式。
软硬件要求:
- ubuntu
- ros neotic
- Logitech G29 Driving Force Racing Wheel
1、安装:
首先检查Ubuntu内核是否支持强制反馈,输入:
cat /boot/config-5.3.0-46-generic | grep CONFIG_LOGIWHEELS_FF
CONFIG_LOGIWHEELS_FF=y
创建 catkin_ws(如已经创建,请忽略):
mkdir catkin_ws
mkdir src
cd /catkin_ws/src
catkin_init_workspace
使用git克隆并编译代码:
cd /catkin_ws/src
git clone https://github.com/kuriatsu/ros-g29-force-feedback.git g29_force_feedback
mv 原名字 g29_force_feedback
cd ../
catkin_make
运行 ROS 节点
roscore
source /path/to/catkin_ws/devel/setup.bash
rosparam load /path/to/catkin_ws/src/g29_force_feedback/g29_force_feedback.yaml
rosrun g29-force-feedback node
发布消息:
rostopic pub /ff_target g29_force_feedback/ForceFeedback "header:
seq: 0
stamp:
secs: 0
nsecs: 0
frame_id: ''
angle: 0.3
force: 0.0
pid_mode: true"
发布消息以后,方向盘通过 PID 控制旋转到 0.3*2.5π(当前角度与指定角度之间的差距越大,旋转力越大)。并且发现转动方向盘发现有阻力