1. ROS 패키지 만드는 방법
cd catkin_ws/src
catkin_create_pkg test_pkg ros_cpp rospy std_msgs cv_bridge sensor_msgs geometry_msgs nav_msgs tf
test_pkg는 패키지 이름이다.
ros_cpp rospy std_msgs cv_bridge sensor_msgs geometry_msgs nav_msgs tf는 패키지의 dependency들이다. 물론 따로 추가하는 방법도 있다.
위의 계층도는 ROS에서 catkin이라는 workspace의 계층도를 나타낸다. 위와 같이 터미널 창에서 칠 경우, pkg_name에 test_pkg가 생기게 된다.
위에서 catkin_ws->src->pkg_name 폴더 안에 launch라는 폴더를 만들고, *.launch 파일을 생성한다. launch 파일은 한번에 여러개의 node와 launch 파일을 실행할 때 사용한다.
위에서 .cpp 파일은 node를 생성하는데 사용된다. 그리고 .h 파일은 그냥 헤더파일이다. 물론 이를 사용하기 위해서는 CMakeList.txt에서 해당 헤더를 설정해야한다.
CMakeList.txt 파일 변경
// 추가 Dependency
find_package(PLC REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})
// 노드로 만들 cpp를 설정
add_executable(노드_이름 경로/파일_이름.cpp)
target_link_libraries(노드_이름 ${catkin_LIVRARIES} ${PCL_LIBRARIES})
// 노드로 만들 cpp를 설정
add_executable(노드_이름 경로/파일_이름.cpp)
target_link_libraries(노드_이름 ${catkin_LIVRARIES} ${OpenCV_LIBS})
// 노드로 만들 cpp를 설정
add_executable(노드_이름 경로/파일_이름.cpp)
target_link_libraries(노드_이름 ${catkin_LIVRARIES} yaml_cpp)
CMakeList.txt 에 헤더 추가하기
// 추가 Dependency
find_package(PLC REQUIRED)
include_directories(${PCL_INCLUDE_DIRS} ./include)
./include는 위의 계층도에서 include 폴더 안에 있는
2. 현재 사용되는 노드와 Launch 파일
amcl_launch.launch
- gmapping을 켠다.
- RVIZ를 켠다.
kinect_laser.launch
- 키보드 입력을 받아서 로봇 제어
- 키넥트 연결 (openni)
- 키넥트 값을 레이져로 변환 (ROS 기본 제공)
- 키넥트와 파이오니어 사이의 tf
kinect_laser_pcl.launch
- 키보드 입력을 받아서 로봇 제어
- 키넥트 연결 (openni)
- 키넥트 값을 레이져로 변환 (경재가 변경)
- 키넥트와 파이오니어 사이의 tf
3. 컴파일 하기
/catkin_ws$ catkin_make
4. ROS_ARIA 설치하기
ROS_ARIA는 파이오니어 로봇을 돌리기 위해 필요한 부분이다.
cd ~/catkin_ws/src
git clone https://github.com/amor-ros-pkg/rosaria.git
소스를 깃허브에서 받아온다.
source ~/catkin_ws/devel/setup.bash
세팅을 준비한다.
echo "source ~/catkin_ws/devel/setup.bash" >> ~/.bashrc
source ~/.bashrc
해당 내용을 ./bashrc에 추가한다.
rosdep update
rosdep install rosaria
catkin_make
ROS에 Dependency를 추가한다.
ROS_ARIA를 설치한다.
페키지를 컴파일 한다.
'Enginius > Robotics' 카테고리의 다른 글
Gaussian process path (0) | 2014.12.24 |
---|---|
RSS 2014 papers (0) | 2014.12.12 |
Installing ROS (0) | 2014.08.04 |
Robot with deep learning (0) | 2014.07.30 |
ROS - Pioneer control using Gazebo simulator (0) | 2014.07.21 |