드론(99)
-
roslaunch command line args
https://answers.ros.org/question/37916/when-to-use-param-and-rosparam-on-launch-file/
2019.10.24 -
ROS C++ 서비스 서버와 클라이언트
토픽과는 다르게 일회성 메세지 통신으로, 응답 요청이 있을 때만 응답하는 서비스 서버와 요청하고 응답받는 서비스 클라이언트로 나뉜다. 이러한 서비스는 로봇에 특정 동작을 수행하도록 요청할 때 많이 사용된다. 네트워크 부하가 적기 때문에 토픽을 대체하는 수단으로 매우 유용한 통신 수단이다 즉, 예를 들어 서버는 지속적으로 동작 중인 상태고 클라이언트는 한 번 서비스를 주고 결과를 받은 후 프로그램을 종료하는 코드를 동작시킬 수 있다 예시로 피보나치 수열을 서비스 노드로 짜보려고 한다 [출처] ROS 로봇 프로그래밍 표윤석
2019.10.24 -
ROS C++ topic 구현
의문은 메세지 파일을 전역적으로 뺀다면 어떻게 include 할 수 있을까?
2019.10.23 -
ROS rosbag으로 turtlesim 재생하기
ROS에서 bag 포맷으로 각종 메세지를 저장하고 필요할 때 이를 재생하여 이전 상황을 그대로 재현할 수 있다. turtlesim을 실행하도록 한다 $ roscore $ rosrun turtlesim turtlesim_node $ rosrun turtlesim turtle_teleop_key 해당 명령으로 특정 토픽만 기록할 수 있다 $ rosbag record [토픽명] 혹은 -a 옵션으로 전체 토픽을 저장할 수 있다 $ rosbag record -a 기록을 끝내고 싶다면 Ctrl+C로 빠져나오면 되고, 기록을 시작했던 경로에 파일이 저장된다. 파일 이름은 디폴트로 날짜로 저장된다 rosbag info 명령으로 기록 파일의 내용을 확인할 수 있다 마지막으로 play로 재생하면서 똑같이 실행되고 있는 것..
2019.10.22 -
ROS package.xml, CMakelist 구성
패키지 이름, 패키지를 생성할 때 입력한 패키지 이름이 사용된다 빌드 시스템 의존성을 기술한다. 현재 catkin 빌드 시스템을 이용하고 있으므로 catkin을 입력한다 패키지를 빌드할 때 의존하는 패키지 이름을 적는다 패키지를 실행할 때 의존하는 패키지 이름을 적는다 project() 패키지 이름을 작성하고, 반드시 package.xml과 맞춰야 한다 find_package 항목은 빌드할 때 요구되는 구성 패키지 요소다. 입력되는 패키지가 없다면 빌드 시 에러가 뜬다 find_package(catkin REQUIRED COMPONENTS roscpp std_msgs ) ROS 이외의 패키지를 사용할 때 사용되는 방법으로, 아래 예는 Boost 패키지를 사용하려면 사전에 system 패키지가 설치되어야 ..
2019.10.21 -
ROS C++ echo 구현 - 1
https://github.com/robotpilot/ros-seminar 자료를 참조했다 $ cs $ catkin_create_pkg beginner_tutorials std_msgs rospy roscpp message_generation #include #include #include int main(int argc, char *argv[]) { ros::init(argc, argv, "hello_world_node"); ros::NodeHandle nh; ros::Publisher chatter_pub = nh.advertise("say_hello_world", 1000); ros::Rate loop_rate(10); int count = 0; while(ros::ok()) { std_msgs::..
2019.10.21