Week 1 Content Validation
This document outlines the validation procedures for Week 1 content to ensure it works correctly on the target hardware setup: RTX 4070 Ti + Ubuntu 22.04.
Hardware Requirements​
- GPU: RTX 4070 Ti (or equivalent)
- OS: Ubuntu 22.04 LTS
- RAM: 16GB minimum (32GB recommended)
- Storage: 50GB free space for ROS 2 and Isaac Sim
- Processor: Multi-core processor (Intel i7 or AMD Ryzen equivalent)
Prerequisites Verification​
Before testing Week 1 content, verify that your system meets these requirements:
1. Ubuntu 22.04 Verification​
lsb_release -a
Expected output should show Ubuntu 22.04.x LTS.
2. ROS 2 Installation Verification​
source /opt/ros/rolling/setup.bash
ros2 --version
Expected output: ros2 foxy or later version (Kilted Kaiju).
3. Python 3.10+ Verification​
python3 --version
Expected output: Python 3.10 or higher.
Week 1 Content Tests​
Test 1: Basic ROS 2 Commands​
Objective: Verify basic ROS 2 functionality
Steps:
- Open a terminal
- Source ROS 2:
source /opt/ros/rolling/setup.bash - Run:
ros2 topic list - Run:
ros2 node list
Expected Results:
- No errors should occur
- Commands should execute successfully
- Should show available topics/nodes (even if empty initially)
Test 2: Publisher/Subscriber Example​
Objective: Verify the publisher and subscriber example from Lab 1 works
Steps:
- Create a test workspace:
mkdir -p ~/test_ws/src
cd ~/test_ws - Copy the publisher_example.py and subscriber_example.py files to a new package
- Build the package:
colcon build --packages-select my_robot_tutorials - Source the workspace:
source install/setup.bash - In terminal 1:
ros2 run my_robot_tutorials talker - In terminal 2:
ros2 run my_robot_tutorials listener
Expected Results:
- Publisher should output "Publishing: 'Hello World: X'" every 0.5 seconds
- Subscriber should output "I heard: 'Hello World: X'" in response
- Messages should match between publisher and subscriber
Test 3: ROS 2 Tools Verification​
Objective: Verify ROS 2 monitoring tools work
Steps:
- With the publisher/subscriber running, open a third terminal
- Source ROS 2:
source /opt/ros/rolling/setup.bash - Run:
ros2 node list - Run:
ros2 topic list - Run:
ros2 topic echo /topic std_msgs/msg/String
Expected Results:
- Should see both 'minimal_publisher' and 'minimal_subscriber' nodes
- Should see '/topic' in the topic list
- Should see the same messages being published by the talker node
Test 4: Code Validation Script​
Objective: Verify the validation script works correctly
Steps:
- Navigate to the code examples directory
- Run the validation script:
python3 validate_examples.py
Expected Results:
- Script should run without errors
- Should report "All ROS 2 examples passed validation!"
Troubleshooting Common Issues​
Issue 1: "Command 'ros2' not found"​
Symptoms: ROS 2 commands return "command not found" Solution:
- Verify ROS 2 installation:
ls /opt/ros/rolling/ - Source the setup file:
source /opt/ros/rolling/setup.bash - Add to shell profile:
echo "source /opt/ros/rolling/setup.bash" >> ~/.bashrc
Issue 2: Publisher/Subscriber not communicating​
Symptoms: Publisher runs but subscriber doesn't receive messages Solution:
- Ensure both terminals have sourced the workspace
- Check ROS_DOMAIN_ID is the same in both terminals:
echo $ROS_DOMAIN_ID - Verify topic names match exactly
Issue 3: Python import errors​
Symptoms: "ModuleNotFoundError" for rclpy or std_msgs Solution:
- Verify ROS 2 Python packages are installed:
pip3 list | grep ros - Install missing packages:
sudo apt install python3-ros-interfaces
Performance Expectations​
Expected Performance on RTX 4070 Ti + Ubuntu 22.04:​
- ROS 2 commands should execute in < 1 second
- Publisher/Subscriber communication should have < 100ms latency
- Memory usage should remain stable during extended runs
- CPU usage should be moderate (20-40%) for basic examples
Success Criteria​
Week 1 content validation is successful if:
- All basic ROS 2 commands execute without errors
- Publisher/Subscriber example runs correctly
- ROS 2 tools can monitor the communication
- Code validation script passes
- No crashes or unexpected behavior occurs
- Performance meets expectations
Next Steps​
Once Week 1 content validation is complete, proceed to Week 2 content validation which will include Isaac Sim integration tests.