本节内容参考链接。
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时,是没有sourceROS的安装路径的,所以此时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 |