[×××.launch]is neither a launch file in package [××] nor is [××] a launch file name解决办法
cd ~/catkin_ws
source devel/setup.bash
catkin_ws 是你的工作空间的名称,但是这样只是暂时解决了,本次有效。
一劳永逸的解决办法是:
打开.bashrc文件
gedit ~/.bashrc
把下面这句话添加进去,保存文件
source ~/catkin_ws/devel/setup.bashrc
再在终端执行
source ~/.bashrc
然后
rosrun ROS包名 launch文件名
举例报错:
[euroc.launch] is neither a launch file in package [vins_estimator] nor is [vins_estimator] a launch file name
举例vins-mono编译问题
编译--在工作空间~/catkin_ws下使用catkin_make命令即可编译ROS包.
catkin_make # 编译当前工作空间下的所有ROS包
编译完成后,可以看到工作空间下多出了build和devel目录,目录结构如下:
catkin_ws/ # 工作空间
├── src
│ └── VINS-Mono
│ ├── feature_tracker
│ ├── pose_graph
│ ├── vins_estimator
│ ├── ar_demo
│ ├── benchmark_publisher
│ ├── camera_model
│ └── config
├── build/
└── devel/
└── setup.bash
其中devel目录下有setup.bash脚本,运行该脚本才能让工作空间下的包被ROS发现.因此每次运行VINS-Mono程序之前,都要先运行该setup.bash脚本:
source ~/catkin_ws/devel/setup.bash
此处工作空间名称可能不一样
每次启动命令行都执行一遍上面命令比较麻烦,因此一般将上调命令加入到~/bashrc脚本的最后一行.~/bashrc在每次启动命令行时自动执行,因此我们添加source ~/catkin_ws/devel/setup.bash命令也被执行,从而使VINS-Mono的包被ROS发现.
准备数据
本次实验使用Euroc MAV数据集,需要下载bag
格式的数据集,放置在任意路径下,例如本次下载其中的MH_01_easy.bag
数据集,放置在~/Dataset/MH_01_easy.bag
路径下.
运行步骤如下:
1.roscore # 启动一个ROS核心
2.source devel/setup.bash #新窗口下执行
3.roslaunch vins_estimator euroc.launch # 运行vins_estimator包下的euroc.launch文件
4.source devel/setup.bash #新窗口下执行
5.roslaunch vins_estimator vins_rviz.launch # 运行vins_estimator包下的vins_rviz.launch文件
6.rosbag play MH_01_easy.bag # 播放对应路径下的MH_01_easy.bag数据集
注:在播放ROS bag数据集前应先运行上节提到的两个launch
文件.