rospack list #패키지 리스트 나열
rospack find [package_name] #패키지 검색
roscd [package_path] # 패키지 디렉토리로 이동
rosls # ls와 같은 기능
catkin_create_pkg [package_name] # 패키지 생성
rospack depends1 [package_name] #해당 패키지가 의존하고 있는 다른 패키지들 나열
catkin_create_pkg [package_name]
명령어로 패키지 생성cm
명령어로 새로만든 패키지 빌드 #!/usr/bin/env python
import rospy
from geometry_msgs.msg import Twist
rospy.init_node("my_node", anonymous=True)
pub = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10)
msg = Twist()
msg.linear.x = 2.0
msg.linear.y = 0.0
msg.linear.z = 0.0
msg.angular.x = 0.0
msg.angular.y = 0.0
msg.angular.z = 1.8
rate = rospy.Rate(1)
while not rospy.is_shutdown():
pub.publish(msg)
rate.sleep()
chmod +x pub.py
로 실행 권한 부여roscore
실행rosrun turtlesim turtlesim_node
실행rosrun sample_pkg src/pub.py
실행rqt_graph
실행rostopic list # 발행되는 토픽 리스트 나열
rostopic type /turtle1/pose # /turtle1/pose 토픽의 타입 나열
rosmsg show turtlesim/Pose # turtlesim/Pose 타입의 구성요소 나열
rostopic echo /turtle1/pose # 노드 실행 시 /turtle1/pose 메세지 값 확인
#!/usr/bin/env python
import rospy
from turtlesim.msg import Pose
def callback(data):
s = "Location: %.2f, %.2f" % (data.x, data.y)
rospy.loginfo(rospy.get_caller_id() + s)
rospy.init_node("my_listener", anonymous=True)
rospy.Subscriber("/turtle1/pose", Pose, callback)
rospy.spin()
<node pkg='패키지명' type='노드가 포함된 소스파일명' name='노드이름'/>
형식으로 실행할 노드 추가'chmod +x ___.launch'
로 실행권한 부여.cm
명령어로 빌드roslaunch [package_name] [launchfile_name]
명령어로 실행<launch>
<node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node"/>
<node pkg="sample_pkg" type="pub.py" name="pub_node"/>
<node pkg="sample_pkg" type="sub.py" name="sub_node" output="screen"/>
</launch>
roslaunch sample_pkg pub_sub.launch
<include file="같이 실행할 *.launch 파일 경로"/>
<param name="변수이름" type="변수타입" value="변수값"/>
get_param(param_name)
<launch>
<node pkg="turtlesim" type="turtlesim_node" name="turtlesim_node"/>
<node pkg="sample_pkg" type="pub_param.py" name="node_param">
<param name="circle_size" value="2"/>
</node>
<node pkg="sample_pkg" type="sub.py" name="sub_node" output="screen"/>
</launch>
#!/usr/bin/env python
import rospy
from geometry_msgs.msg import Twist
rospy.init_node("my_node", anonymous=True)
pub = rospy.Publisher('/turtle1/cmd_vel', Twist, queue_size=10)
msg = Twist()
linear_X = rospy.get_param("~circle_size")
msg.linear.x = linear_X
msg.linear.y = 0.0
msg.linear.z = 0.0
msg.angular.x = 0.0
msg.angular.y = 0.0
msg.angular.z = 1.8
rate = rospy.Rate(1)
while not rospy.is_shutdown():
pub.publish(msg)
rate.sleep()