فهرست منبع

remove turtlesim container

Rodja Trappe 1 سال پیش
والد
کامیت
13d653590c

+ 2 - 4
examples/ros2/Dockerfile

@@ -9,9 +9,7 @@ SHELL ["/bin/bash", "-c"]
 
 RUN pip3 install nicegui
 
-EXPOSE 8000
-
-COPY ros2_ws ros2_ws/
+ADD ros2_ws ros2_ws/
 
 RUN cd ros2_ws && \
     source /opt/ros/humble/setup.bash && \
@@ -19,7 +17,7 @@ RUN cd ros2_ws && \
 
 COPY ros_entrypoint.sh /
 
+EXPOSE 8080
 ENTRYPOINT ["/ros_entrypoint.sh"]
-
 CMD ["bash"]
 

+ 1 - 1
examples/ros2/README.md

@@ -40,5 +40,5 @@ If you want to run the Nodes locally in your ROS2 environment, you can copy the
 To run it, just use the normal ros2 run:
 
 ```bash
-ros2 run nicegui_ros2 joystick_nicegui
+ros2 run nicegui joystick_nicegui
 ```

+ 1 - 11
examples/ros2/docker-compose.yml

@@ -7,14 +7,4 @@ services:
       - 8000:8000
     volumes:
       - ./ros2_ws/src:/ros2_ws/src
-    command: ros2 run nicegui_ros2 nicegui_node
-
-  turtlesim:
-    image: osrf/ros:humble-desktop
-    environment:
-      - DISPLAY
-    volumes:
-      - /tmp/.X11-unix:/tmp/.X11-unix:rw
-    command: ros2 run turtlesim turtlesim_node
-    depends_on:
-      - nicegui
+    command: ros2 run gui nicegui_node

+ 0 - 0
examples/ros2/ros2_ws/src/nicegui_ros2/nicegui_ros2/__init__.py → examples/ros2/ros2_ws/src/gui/gui/__init__.py


+ 14 - 6
examples/ros2/ros2_ws/src/nicegui_ros2/nicegui_ros2/nicegui_node.py → examples/ros2/ros2_ws/src/gui/gui/node.py

@@ -1,10 +1,13 @@
+import threading
+from pathlib import Path
+
 import rclpy
+from geometry_msgs.msg import Twist
 from rclpy.executors import ExternalShutdownException
 from rclpy.node import Node
-from geometry_msgs.msg import Twist
-import threading
-from nicegui import ui, app, run
-from pathlib import Path
+
+from nicegui import app, run, ui
+
 
 class TurtleTwistNode(Node):
     def __init__(self) -> None:
@@ -12,7 +15,7 @@ class TurtleTwistNode(Node):
         self.linear = 0.0
         self.angular = 0.0
         self.publisher_ = self.create_publisher(Twist, 'turtle1/cmd_vel', 1)
-        timer_period = 0.15 # seconds
+        timer_period = 0.15  # seconds
         self.timer = self.create_timer(timer_period, self.timer_callback)
 
     def timer_callback(self) -> None:
@@ -26,18 +29,21 @@ class TurtleTwistNode(Node):
         self.linear = x
         self.angular = y
 
+
 def node_spin(node: Node) -> None:
     try:
         rclpy.spin(node)
     except ExternalShutdownException:
         print('ROS2 was shutdown by NiceGUI.')
 
+
 def ros_main() -> TurtleTwistNode:
     rclpy.init()
     turtle_twist_node = TurtleTwistNode()
     threading.Thread(target=node_spin, args=(turtle_twist_node,), daemon=True).start()
     return turtle_twist_node
 
+
 @ui.page('/')
 def page() -> None:
 
@@ -73,8 +79,10 @@ def page() -> None:
             ui.label('angular speed')
             ui.label().bind_text_from(active_node, 'angular', backward=lambda value: f'{value:.3f}')
 
+
 def main() -> None:
     pass  # NOTE: This is originally used as the ROS entry point, but we give the control of the node to NiceGUI.
 
+
 run.APP_IMPORT_STRING = f'{__name__}:app'
-ui.run(port=8000, uvicorn_reload_dirs=str(Path(__file__).parent.resolve()))
+ui.run(port=8000, uvicorn_reload_dirs=str(Path(__file__).parent.resolve()))

+ 16 - 0
examples/ros2/ros2_ws/src/gui/package.xml

@@ -0,0 +1,16 @@
+<?xml version="1.0"?>
+<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
+<package format="3">
+  <name>gui</name>
+  <version>1.0.0</version>
+  <description>This is an example of NiceGUI in a ROS2 node based that uses a joystick to control turtlesim.</description>
+  <maintainer email="nicegui@zauberzeug.com">jens</maintainer>
+  <license>MIT License</license>
+  
+  <depend>rclpy</depend>
+  <depend>geometry_msgs</depend>
+
+  <export>
+    <build_type>ament_python</build_type>
+  </export>
+</package>

+ 4 - 0
examples/ros2/ros2_ws/src/gui/setup.cfg

@@ -0,0 +1,4 @@
+[develop]
+script_dir=$base/lib/gui
+[install]
+install_scripts=$base/lib/gui

+ 8 - 8
examples/ros2/ros2_ws/src/nicegui_ros2/setup.py → examples/ros2/ros2_ws/src/gui/setup.py

@@ -1,26 +1,26 @@
+import glob
+import os
+
 from setuptools import setup
 
-package_name = 'nicegui_ros2'
+package_name = 'gui'
 
 setup(
     name=package_name,
     version='1.0.0',
     packages=[package_name],
     data_files=[
-        ('share/ament_index/resource_index/packages',
-            ['resource/' + package_name]),
         ('share/' + package_name, ['package.xml']),
     ],
     install_requires=['setuptools'],
     zip_safe=True,
-    maintainer='jens',
-    maintainer_email='jens.ogorek@gmail.com',
+    maintainer='Zauberzeug GmbH',
+    maintainer_email='nicegui@zauberzeug.com',
     description='This is an example of NiceGUI in a ROS2 node based that uses a joystick to control turtlesim.',
-    license='TODO: License declaration',
-    tests_require=['pytest'],
+    license='MIT License',
     entry_points={
         'console_scripts': [
-            'nicegui_node = nicegui_ros2.nicegui_node:main',
+            'nicegui_node = gui.node:main',
         ],
 
     },

+ 0 - 22
examples/ros2/ros2_ws/src/nicegui_ros2/package.xml

@@ -1,22 +0,0 @@
-<?xml version="1.0"?>
-<?xml-model href="http://download.ros.org/schema/package_format3.xsd" schematypens="http://www.w3.org/2001/XMLSchema"?>
-<package format="3">
-  <name>nicegui_ros2</name>
-  <version>1.0.0</version>
-  <description>This is an example of NiceGUI in a ROS2 node based that uses a joystick to control turtlesim.</description>
-  <maintainer email="jens.ogorek@gmail.com">jens</maintainer>
-  <license>TODO: License declaration</license>
-  
-  <depend> rclpy </depend>
-  <depend> geometry_msgs </depend>
-  <depend> nicegui </depend>
-  
-  <test_depend>ament_copyright</test_depend>
-  <test_depend>ament_flake8</test_depend>
-  <test_depend>ament_pep257</test_depend>
-  <test_depend>python3-pytest</test_depend>
-
-  <export>
-    <build_type>ament_python</build_type>
-  </export>
-</package>

+ 0 - 0
examples/ros2/ros2_ws/src/nicegui_ros2/resource/nicegui_ros2


+ 0 - 4
examples/ros2/ros2_ws/src/nicegui_ros2/setup.cfg

@@ -1,4 +0,0 @@
-[develop]
-script_dir=$base/lib/nicegui_ros2
-[install]
-install_scripts=$base/lib/nicegui_ros2

+ 1 - 1
setup.py

@@ -7,5 +7,5 @@ setup(
     author='Zauberzeug',
     author_email='info@zauberzeug.com',
     url='https://github.com/zauberzeug/nicegui/',
-    packages=['nicegui'],
+    packages=['gui'],
 )