usv_sim_lsa/docs/install_docker.md 在 master ·灾难机器人-ProAlertas/usv_sim_lsa (github.com)
第一步:构建具有usv_sim依赖项的 docker 镜像
cd $HOME/catkin_ws/src/usv_sim_lsa/docker
docker build --network=host --rm -f Dockerfile -t usv_sim .
第二步:构建usv
docker run -it --rm -v $HOME/catkin_ws:/root/catkin_ws/ -v $HOME/.uwsim:/root/.uwsim --net=host --name=usv_sim_test usv_sim bash
注:在此处使用该命令到后面会报错
可以执行官网给的
首先,测试usv_sim图像的 DISPLAY 配置以运行 GUI 应用程序:
export DISPLAY=:0.0
xhost +local:docker
docker run -it --rm --net=host \
--env="DISPLAY=$DISPLAY" \
--env="QT_X11_NO_MITSHM=1" \
usv_sim bash -c "xcalc"
接着执行这段命令
export DISPLAY=:0.0
xhost +local:docker
docker run -it --rm --net=host --name=usv_sim_test \
-v $HOME/catkin_ws:/root/catkin_ws/ \
-v $HOME/.uwsim:/root/.uwsim \
-v $HOME/.gazebo:/root/.gazebo \
-v $HOME/.ros:/root/.ros \
-v /tmp/.X11-unix:/tmp/.X11-unix \
--env="DISPLAY=$DISPLAY" \
--env="XDG_SESSION_TYPE=x11" \
--env="LIBGL_ALWAYS_SOFTWARE=1" \
--env="QT_X11_NO_MITSHM=1" \
usv_sim_dep bash
ctrl+c退出,最后执行
./usv_sim_term.sh
在 docker 终端中,运行以下脚本以构建 usv_sim:
cd /root/catkin_ws/src/usv_sim_lsa/docker
./build.sh
第三步:使用 Docker 镜像运行 USV_SIM
#设置了 LIBGL_ALWAYS_SOFTWARE=1 环境变量,这可以强制使用软件渲染
#确保容器内的 DISPLAY
变量正确设置
这一步是防止后面打开gazebo出错
export LIBGL_ALWAYS_SOFTWARE=1
export DISPLAY=:0.0
运行gazebo
source ~/catkin_ws/install_isolated/setup.bash
roslaunch gazebo_ros empty_world.launch
仍然在之前使用的同一 docker 终端中,测试一个USV_SIM的基本场景.
打开同一docker命令
docker ps #查看已有docker名称
docker exec -it usv_sim_test bash #打开名为usv_sim_test的镜像
测试一个USV_SIM的基本场景:
先执行 gazebo,再执行下面的代码
roslaunch usv_sim airboat_scenario1.launch parse:=true
roslaunch usv_sim airboat_scenario1.launch parse:=false
在执行该命令时,会出错,
内容为
执行
roscd freefloating_gazebo
cd scripts
找到给文件夹下的uwsim_scene_to_gazebo_spawner.py,并添加执行权限
sudo chmod +x uwsim_scene_to_gazebo_spawner.py
然后报错xacro和resource_retriever没有,下载
sudo apt-get update
sudo apt-get install ros-noetic-xacro
sudo apt-get install ros-noetic-resource-retriever
继续报错
对于这个问题的解决方法,下载GitHub - uji-ros-pkg/underwater_simulation: UWSim-NET, the Underwater Simulator
源码到usv_sim_lsa,我使用的环境为ubuntu20.04 noetic,但是该源码只支持ubuntu18.04 melodic,所以目前就卡在这。
uwsim安装步骤:安装 UWSim - UWSim (uji.es)
如果您是首次启动 gazebo,则模拟可能需要一些时间来初始化。如果模拟没有开始,您应该关闭它,单独运行 gazebo(在终端中命令 gazebo),等待 gazebo 打开(它正在下载一些模型),关闭 gazebo,然后尝试再次运行该场景。
第一个命令显示一些红色消息。这很正常。第二个命令启动一个空的 Gazebo 窗口和 UWSIM 窗口,具体情况如下: