环境:ubuntu20.04+anaconda+python3.7+ros2 foxy+Logitech g29
一、安装Carla
github地址:
https://github.com/carla-simulator/carla
安装文档:
https://carla.readthedocs.io/en/0.9.13/
安装的版本:0.9.13
主要步骤:
1.1 将0.9.13版本的Carla安装包下载到本地并解压CARLA_0.9.13.tar.gz
cd ~/project
mkdir Carla
cd Carla
tar -zxvf CARLA_0.9.13.tar.gz
1.2 测试是否能正常启动
cd CARLA_0.9.13
./CarlaUE4.sh
1.3 安装anaconda创建并配置Carla虚拟环境
anaconda的安装这里不做介绍,请自行安装
source activate
conda create -n Carla python=3.7
conda activate Carla
进入Carla虚拟环境后安装所需要得包
pip install --user pygame numpy
pip3 install --user pygame numpy
安装和使用 CARLA 客户端库:3种方式(可看文档)
这里使用其中一种:用whl文件方式
cd ~/project/Carla/CARLA_0.9.13/PythonAPI/carla/dist/
pip3 install carla-0.9.13-cp37-cp37m-manylinux_2_27_x86_64.whl
尝试一些示例脚本来在城市中产生生命并驾驶汽车:
cd ~/project/Carla/CARLA_0.9.13/PythonAPI/examples
python3 -m pip install -r requirements.txt
1.4 测试示例:都是在Carla虚拟conda环境下进行的
terminal1:
python3 generate_traffic.py
terminal2:
python3 manual_control.py
结果如上所示
1.5 命令行选项
启动 CARLA 时有一些可用的配置选项,它们可以按如下方式使用:
./CarlaUE4.sh -carla-rpc-port=3000
./config.py --no-rendering # Disable rendering
./config.py --map Town05 # Change map
./config.py --weather ClearNoon # Change weather
./config.py --help # Check all the available configuration options
二、连接罗技方向盘Logitech G29
2.1安装jstest-gtk
jstest-gtk是一个基于Gtk +的简单操纵杆测试和配置工具。它为您提供了一个附加的操纵杆列表,一种显示按下按钮和轴的方法,一种重新映射轴和按钮的方法以及一种校准操纵杆的方法。jstest-gtk主要是一个图形界面,用于检查你的操纵杆和打击垫是否工作正常。您可以在每个轴上找到精确信息,您可以选择重新校准它并且可以改变映射。将罗技方向盘连接至电脑主机。
使用下方命令安装jstest-gtk。
sudo apt-get update
sudo apt-get install jstest-gtk
启动
jstest-gtk
出现上图则说明连接成功,并且检测到罗技方向盘设备了:/dev/input/js0。然后点击Properties进入参数页面,如下图所示。
转动方向盘和踩刹车换挡等应该会有Axis和Buttons会有所变换,就可以了。
2.2测试G29在Carla中是否能用
cd ~/project/Carla/CARLA_0.9.13/PythonAPI/examples
touch wheel_config.ini
gedit wheel_config.ini
将下方内容粘贴进去,内容中数值时由jstest-gtk中的设置填入的。
[G29 Racing Wheel]
steering_wheel = 0
clutch = 1
throttle = 2
brake = 3
handbrake = 4
reverse = 15
注:
最上方[G29 Racing Wheel]
不可少且不能变否则后面绘报错误No section: 'G29 Racing Wheel'
steering_wheel=0
方向盘Axis数值
clutch = 1 离合器Axis数值
throttle = 2 油门Axis数值
brake = 3 刹车Axis数值
handbrake = 4 手刹Axis数值
reverse = 15 倒车Button数值
terminal1:
cd ~/project/Carla/CARLA_0.9.13
./CarlaUE4.sh -carla-server
terminal2:
cd ~/project/Carla/CARLA_0.9.13/PythonAPI/examples
python manual_control_steeringwheel.py --host <服务器地址>
如果是本机运行则可不加服务器地址参数。
显示如上所示,此时可以用方向盘控制车子了。控制车子的面板左边,显示的是当前客户端、服务器的fps,以及油门,刹车,方向盘,倒挡,手刹的各项信息,我们需要根据其显示的限度来调整自己的方向盘驾驶车辆。但是在操作过程中发现方向盘没有力反馈。
参考连接:https://blog.csdn.net/weixin_44677876/article/details/89103999
三、Ubuntu环境下实现罗技G29方向盘力回馈
ros1的力反馈支持包:
https://github.com/kuriatsu/ros-g29-force-feedback/tree/ros1
ros2的力反馈支持包:
https://github.com/JLBicho/ros-g29-force-feedback/tree/ros2-foxy
选择需要装的ros包,进行安装编译。注意这个不在虚拟环境中安装,退出虚拟环境进行安装编译所需要的包。编译完成后如果node文件启动不了,启动launch文件也行。启动launch文件后,再去Carla模拟驾驶就有力反馈了。
参考连接:
https://www.cnblogs.com/henkenen/p/15723421.html
https://github.com/kuriatsu/ros-g29-force-feedback/tree/ros1
https://github.com/JLBicho/ros-g29-force-feedback/tree/ros2-foxy
注意事项:
错误1:
no moudle lark 要 pip安装lark-parser才行,安装lark没有用