由於自己看些野路子的書本把自己坑了,於是開始一步步的解bug之旅,將自己的除錯的過程與大家分享。。
這裡假設是你已經安裝好了ros,我在這裡用的是ubuntu 16.04,ros版本:kinetic(一直把這個記成kinect,錯了很多地方。。)
(1)首先建立工作空間:ros系統進行執行時都是在某個工作空間下,允許有許多個工作空間,經常需要切換
這裡我工作空間名字就叫catkin_ws好了,官方書籍也是這樣寫的(中間部分**沒有注釋,隨便翻本書就可以看懂)
mkdir -p ~/catkin_ws/src
cd ~/catkin_ws/src
catkin_init_workspace
cd ~/catkin_ws
catkin_make
(2)建立ros包
cd ~/catkin_ws/src
catkin_create_pkg example_cpp(功能包名字) std_msgs roscpp
(3)編譯ros功能包
cd ~/catkin_ws
catkin_make
(4)將兩個cpp檔案(example_public.cpp和example_subscriber.cpp
)放到catkin_ws/example_cpp/src裡面
example_public.cpp
#include #include #include int main(int argc,char **argv)
return 0;
}
example_subscriber.cpp
#include #include void chattercallback(const std_msgs::string::constptr& msg)
int main(int argc,char **argv)
(5)修改catkin_ws/example_cpp下的cmakelist檔案(在末尾加一下內容即可)
include_directories(
include
$)add_executable(example_public src/example_publih.cpp)
add_executable(example_subscriber src/example_subscriber.cpp)
add_dependencies(example_public tutorials_generate_messages_cpp)
add_dependencies(example_subscriber tutorials_generate_messages_cpp)
target_link_libraries(example_public $)
target_link_libraries(example_subscriber $)
注意:這個時候需要去source一下源(這個地方我也沒太清楚)
我們ros的master執行需要source /opt/ros/kinetic/setup.bash
可以通過寫echo "source /opt/ros/kinetic/setup.bash" >> ~/.bashrc
這樣是為了不必每次進行用源,因為終端執行時會自動啟動.bashrc檔案,你可以可以直接開啟.bashrc檔案修改引數然後儲存
接下來我們由於是在工作空間中執行我們的節點,這就需要source一下我們工作空間的源
source /home/tany/catkin_ws/devel/setup.bash(pwd指令可以看我們工作空間所處的位置,可能devel裡儲存的是工作空間的源,這個cmake有關)避免每次都要source直接在終端敲入同上的方式:
echo "source /home/tany/catkin_ws/devel/setup.bash" >> ~/.bashrc
(6)最後
cd ~/catkin_ws
catkin_make -j4
依次開啟新視窗,敲一下三行(每行敲完換乙個新終端)
roscore
rosrun example_cpp example_public
rosrun example_cpp example_subscriber
ROS建立節點
首先是自己第一次接觸ros遇到了好多的坑就想讓大家避免入坑,還有就是普及正確的東西首先我要抨擊一下這篇文章,讓許多人走了彎路浪費了大家的時間,對待發部落格一點都不嚴謹錯誤太多以下是位址按照我的做你會發現其實錯誤很簡單。很簡單就是幾條linux命令 mkdir p catkin ws src cd c...
建立乙個ROS節點
mkdir p catkin ws srccd catkin ws src現在使用catkin create pkg命令來建立乙個名為 beginner tutorials 的新程式包,這個程式包依賴於std msgs roscpp和rospy catkin create pkg beginner ...
ros學習之usb cam節點
1 節點 1.1 usb cam節點 usb cam節點使用libusb cam與標準的usb攝像頭聯絡,它發布影象訊息 sensor msgs image,使用image transport庫可以使影象壓縮傳輸 1.1.1 發布的話題 image sensor msgs image the ima...