Best practices for organizing a project [closed]
Hello all,
Sorry for the long winded explanation but my thoughts are a bit scattered on this.
I'm fairly new to ROS. I've been working with it for about a month and I feel I'm beginning to understand most of the basics (packages, topics, subscriptions, services, etc), but when it comes to how to put together a practical project I'm struggling. I'm using ROS for my senior design project, which is a mobile autonomous robot with some mapping and computer vision capabilities. The robot is going to have several well-defined modes of operation where some subsystems should be active or inactive.
We're using a Kinect and converting the depth cloud to a laserscan with the depthcloud_to_laserscan node. I've already got this working with HectorSLAM as a preliminary mapping system since the robot isn't built yet and I don't have access to physical odometry. Here are examples of a few of the operation modes:
- Autonomous Mapping Mode: Sonar/tactile based obstacle avoidance system + SLAM system
- Manual Mapping Mode: Teleoperation system + SLAM system
- Autonomous Patrol Mode: Sonar/tactile based obstacle avoidance system + Map-based navigation system + Motion detection system
What's the best way to initialize/start this system and switch between these states? I don't want all the subsystems to be active at the same time because power and processing will be important. For prototyping, I want to be able to type commands into the terminal to switch between each of these systems, launching all of the relevant nodes and closing them cleanly when the procedures are complete or are interrupted.
I suppose this is more of a design philosophy question, I'm sorry if it's not specific enough. I've read through most of the tutorial content and so far I haven't found anything that quite answers my question.
All replies welcome, thanks.