updated package

This commit is contained in:
locker98 2024-12-18 19:35:50 -05:00
parent 30995c709a
commit 979eb7342f
5 changed files with 53 additions and 66 deletions

51
.gitignore vendored Normal file
View File

@ -0,0 +1,51 @@
devel/
logs/
build/
bin/
lib/
msg_gen/
srv_gen/
msg/*Action.msg
msg/*ActionFeedback.msg
msg/*ActionGoal.msg
msg/*ActionResult.msg
msg/*Feedback.msg
msg/*Goal.msg
msg/*Result.msg
msg/_*.py
build_isolated/
devel_isolated/
# Generated by dynamic reconfigure
*.cfgc
/cfg/cpp/
/cfg/*.py
# Ignore generated docs
*.dox
*.wikidoc
# eclipse stuff
.project
.cproject
# qcreator stuff
CMakeLists.txt.user
srv/_*.py
*.pcd
*.pyc
qtcreator-*
*.user
/planning/cfg
/planning/docs
/planning/src
*~
# Emacs
.#*
# Catkin custom files
CATKIN_IGNORE

View File

@ -1 +1,2 @@
# ros2-example # Udemy Course 1
This is my code and scripts from the udemy course I took [here](https://www.udemy.com/course/ros2-for-beginners/?couponCode=ST21MT121624). I was an amazing course and I would highly recommend it for getting an basic introduction to ROS 2.

View File

@ -1,62 +0,0 @@
#!/usr/bin/env python
import rclpy
from rclpy.node import Node
import pygame
import time
from geometry_msgs.msg import Twist
class JoyMoveNode(Node):
def __init__(self, joystick):
super().__init__("joy_move")
self.joystick = joystick
self.publisher_ = self.create_publisher(Twist, "/cmd_vel", 10)
self.timer_ = self.create_timer(0.1, self.publish_news)
self.get_logger().info("Starting the robot news station")
def publish_news(self):
r, move = self.get_joystick_right_stick()
msg = Twist()
msg.linear.x = move*2
msg.angular.z = r*2
self.publisher_.publish(msg)
def get_joystick_right_stick(self):
# Pump the event queue to prevent freezing
pygame.event.pump()
# Get right joystick axis values
right_x = round(self.joystick.get_axis(3), 2)/4 # Adjust index if not correct
right_y = round(self.joystick.get_axis(4), 2)/4 # Adjust index if not correct
if right_x < 0.02 and right_x > -0.02:
right_x = 0.0
if right_y < 0.02 and right_y > -0.02:
right_y = 0.0
return right_x, -right_y
def main (args=None):
# Initialize pygame
pygame.init()
pygame.joystick.init()
# Find Controller
if pygame.joystick.get_count() == 0:
print("No joystick detected.")
exit(0)
# Open the first joystick
joystick = pygame.joystick.Joystick(0)
joystick.init()
# Start ROS 2 Node
rclpy.init(args=args)
node = JoyMoveNode(joystick)
rclpy.spin(node)
rclpy.shutdown()
if __name__ == '__main__':
main()

View File

@ -9,8 +9,6 @@
<depend>rclpy</depend> <depend>rclpy</depend>
<depend>example_interfaces</depend> <depend>example_interfaces</depend>
<depend>pygame</depend>
<depend>time</depend>
<depend>geometry_msgs</depend> <depend>geometry_msgs</depend>
<depend>functools</depend> <depend>functools</depend>
<depend>my_robot_interfaces</depend> <depend>my_robot_interfaces</depend>

View File

@ -24,7 +24,6 @@ setup(
"py_node = my_py_pkg.my_first_node:main", "py_node = my_py_pkg.my_first_node:main",
"smartphone = my_py_pkg.smartphone:main", "smartphone = my_py_pkg.smartphone:main",
"add_two_ints_server = my_py_pkg.add_two_ints_server:main", "add_two_ints_server = my_py_pkg.add_two_ints_server:main",
"joy_move = my_py_pkg.joy_move:main",
"add_two_ints_client_no_oop = my_py_pkg.add_two_ints_client_no_oop:main", "add_two_ints_client_no_oop = my_py_pkg.add_two_ints_client_no_oop:main",
"add_two_ints_client = my_py_pkg.add_two_ints_client:main", "add_two_ints_client = my_py_pkg.add_two_ints_client:main",
"hardware_status_publisher = my_py_pkg.hw_status_publisher:main", "hardware_status_publisher = my_py_pkg.hw_status_publisher:main",