[ROS] RVIZ 기반 프로그래밍

happy_quokka·2023년 10월 16일
0

ROS

목록 보기
15/25

rviz 실행

$ roslaunch rviz_xycar xycar_3d.launch 

rviz 코딩으로 바퀴 움직이기

1. move_joint.py

#!/usr/bin/env python

import rospy
from sensor_msgs.msg import JointState
from std_msgs.msg import Header

rospy.init_node("move_joint")
pub = rospy.Publisher("joint_states", JointState, queue_size=10)

hello_xycar = JointState()
hello_xycar.header = Header()

hello_xycar.name = ["front_right_hinge_joint", "front_left_hinge_joint","front_right_wheel_joint","front_left_wheel_joint","rear_right_wheel_joint","rear_left_wheel_joint"]
hello_xycar.velocity = []
hello_xycar.effort = []


a = -3.14
b = -3.14

rate = rospy.Rate(50)

while not rospy.is_shutdown():
    hello_xycar.header.stamp = rospy.Time.now()

    if a >= 3.14:
        a = -3.14
        b = -3.14
    else:
        a += 0.01 #약 6도
        b += 0.01

    hello_xycar.position = [0, 0, a, b, 0, 0]
    pub.publish(hello_xycar)
    rate.sleep()

2. 권한

$ chmod +x *.py

3. 실행

$ roslaunch rviz_xycar move_joint.launch 
  • 앞바퀴 2개가 돌아간다아ㅏ

rviz 8자 바퀴 주행

  1. rviz_8_drive.py

  2. converter.py

  3. rviz_drive.launch

  4. 권한

  1. 실행
$ roslaunch rviz_xycar rviz_drive.launch

바퀴가 안뜬다!!!!
--> converter.py 파일의 callback에 이걸 추가하면 해결됨
hello_xycar.header.stamp = rospy.Time.now()

rviz 진짜 8자 주행

  1. odom_8_drive.py

  2. converter.py

  3. rviz.odom.py

  4. rviz_odom.launch

0개의 댓글