本节内容参考链接。
1. 构建Docker
为了构建支持远程调试的Docker,需要在Docker
文件中添加如下命令:
1 | RUN apt-get update && apt-get install -y openssh-server rsync gdb gdbserver && \ |
注意,上面的命令中,为了防止Docker
和Host
的SSH端口发生冲突,将Docke
的SSH
端口重定向到了2233
端口。
然后运行如下命令,构建镜像:
1 | docker build -t ros:vins-mono-screen . |
2. 实例化镜像
1 | docker run -it --name vins-mono-screen --network host ros:vins-mono-screen |
示例化镜像后通过以下命令测试ssh
配置是否成功:
1 | ssh -p 2233 root@localhost |
若提示密码设置不成功,可以通过以下命令重设密码:
1 | passwd root |
若Docker
中SSH服务没有启动,或手工更改了\etc\ssh\sshd_config
中的参数,可以通过以下命令操作:
1 | /etc/init.d/ssh restart |
3. 配置Clion
3.1 配置Toolchains
3.2 配置Deployment
Local Path
的文件会上传到Deployment Path
,然后在远程编译,完成配置后记得Resync代码。
4. 打开项目
完成以上配置后,打开工程项目。此时注意因为Clion通过SSH连接到Container时,是没有source
ROS的安装路径的,所以此时CMakelists.txt
中find_package(catkin)
将报错,此时,需要在CMakelists.txt
中find_package(catkin)
前添加如下命令:
1 | set(CMAKE_PREFIX_PATH /opt/ros/kinetic /root/catkin_ws/devel) |
另外,需要在Clion的Run/Debug Configurations中,增加相应的环境变量:
1 | ROS_MASTER_URI=http://localhost:11311 # ros master |