参考官方文档
注意:jetson xavier nx开发板上是有预装docker的,可以用systemctl start docker
启动docker,用docker version
查看docker版本;jetson xavier nx是有官方docker镜像的,详见NGX
一、拉取ROS镜像
docker pull ros
这将把最新的标记过ROS的LTS映像从Docker Hub拉到本地主机上。
查看官方有哪些镜像
ros-core不带gui,perception带gui,具体区别可自行百度
运行命令
docker pull ros:kinetic-perception
将会拉取你要的镜像
也可以使用osrf的镜像,带桌面版的ros
二、运行ROS容器
查看镜像是否拉取成功
docker images
运行容器
docker run -it ros
这将使您进入与正在运行的容器的交互会话中。从这里开始,基本上就像您在一个新的bash终端中,与您的主机独立。现在运行roscore命令,您将看到ros master启动。
注意:docker run -it ros
将会寻找并运行本机最新的ros,没有的话,它会继续下载最新的,
要运行指定image,使用tag标签指定,如:
docker run -it ros:kinetic-perception
运行后,进入与正在运行的容器的交互会话中。从这里开始,基本上就像您在一个新的bash终端中,与您的主机独立。现在运行roscore
命令,您将看到ros master启动
在容器后台启动master
roscore &
Ctrl+C返回容器终端,使用命令rostopic list
查看rostopic
容器跑起来后,打开一个新的终端运行:
docker ps -l
查看目前在运行的docker
若新开一个终端运行docker run -it ros:kinetic-perception
,又会创建一个容器,如果想多个窗口操作已经启动的一个容器,可以用这个命令,docker_name可运行docker ps -l
查看
docker exec -it <docker_name> bash
source一下setup.bash,
source opt/ros/kinetic/setup.bash
然后
rostopic list
Docker相关操作
1、退出容器:
exit
Linix相关操作
1、查看进程, ps命令查找与进程相关的PID号:
ps a 显示现行终端机下的所有程序,包括其他用户的程序。
ps -A 显示所有程序。
ps c 列出程序时,显示每个程序真正的指令名称,而不包含路径,参数或常驻服务的标示。
ps -e 此参数的效果和指定"A"参数相同。
ps e 列出程序时,显示每个程序所使用的环境变量。
ps f 用ASCII字符显示树状结构,表达程序间的相互关系。
ps -H 显示树状结构,表示程序间的相互关系。
ps -N 显示所有的程序,除了执行ps指令终端机下的程序之外。
ps s 采用程序信号的格式显示程序状况。
ps S 列出程序时,包括已中断的子程序资料。
ps -t<终端机编号> 指定终端机编号,并列出属于该终端机的程序的状况。
ps u 以用户为主的格式来显示程序状况。
ps x 显示所有程序,不以终端机来区分。
2.杀进程
kill -9 <id> #-9 强行终止进程