目录
自问自答v1
一、echo $ROS_PACKAGE_PATH 这句话是什么意思
echo 英文意思:回响; 回声; 回音; 映现; 暗示; 启示; 反响; 共鸣; 附和; 重复
在linux下的作用:就是文本输入,然后显示
#To make sure your workspace is properly overlayed by the setup script, make sure ROS_PACKAGE_PATH environment variable includes the directory you're in.
zyf@zyf-TM1707:~$ echo $ROS_PACKAGE_PATH
/home/zyf/chuankou/src:/home/zyf/catkin_ws/src:/opt/ros/melodic/share
答:显示ROS_PACKAGE_PATH 的路径内容,输出的文本可以看出有三个路径在里面
echo "int64 num" > msg/Num.msg
echo也可以向文件中写入数据。
二、source devel/setup.bash 这句话什么意思
用法:
source filename # filename必须是可执行的脚本文件
或者
. filename # 注意“.”号后面还有一个空格
区别
当shell脚本具有可执行权限时,用sh filename与./filename是没有区别的。
./filename是因为当前目录没有在PATH中,所以"."是用来表示当前目录的。
source filename读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。
答:测试可以知道source 和 . 都是运行一个二进制文件的 (.bash)
三、shell 与 bash
Shell俗称壳(用来区别于内核),是指“提供使用者使用界面”的软件,就是一个命令行解释器。
bash 是一个为GNU项目编写的Unix shell,也就是linux用的shell。
就是说,bash是一种shell
答:bahs是shell的一种,可以理解成 命令窗口 :terminal
四、$ 这个符号什么意思
答:$ 符号用在什么地方,使用在不同的地方,其所代表的定义也就不同。比如在bash里 $ 符号表示当前用户为普通用户;在bash脚本里。$开头表示变量。
五、ros 里 int main(int argc, char **argv) 怎么理解
答:c++中的理解是:第一个参数,int型的argc,为整型,用来统计程序运行时发送给main函数的命令行参数的个数
第二个参数,char*型的argv[],为字符串数组,用来存放指向的字符串参数的指针数组,每一个元素指向一个参数。
ros里用起来的意义是:argc 即 运行改节点时的输入参数个数,argv[] 参数字符数组,其中第0个参数是程序本身(包括路径)
六、ros工作空间里的文件夹都是放什么的
自问自答v2
一、添加srv、msg消息的时候怎么配置CMakeLists.txt 和 package.xml
官网:http://wiki.ros.org/ROS/Tutorials/CreatingMsgAndSrv
①其实以上两个文件已经备注好了,当要添加消息的时候,package.xml 需要添加 创建依赖和执行依赖
<build_depend>message_generation</build_depend>
<exec_depend>message_runtime</exec_depend>
②在CMakeList.txt 中根据注释也可发现
find_package