NAO-Robot 使用 Python 在 NAO 机器人中实现声音定位系统。 由 Guy Brown 博士、Ann Nee Lau 和 Laura Craciun 撰写。
2022-03-11 13:06:25 14.57MB OpenEdgeABL
1
Webots平台NAO机器人寻路避障实现附件
2022-02-08 09:13:53 73KB python webots
1
人机交互是计算机科学、心理学、认知科学的交叉研究领域。近年来人机交互正逐渐地从以计 算机为中心转移到以人为中心。传统的人机交互方式(键盘、鼠标等)已很难满足人们日益增长的 需求。手势识别和表情识别作为自然的、符合直觉的人机交互方式,是近年来十分热门的研究方向。 本文研究了基于NAO机器人的手势识别和表情识别,并用于进行人机交互。 本文的主要内容如下: 首先,介绍了手势识别和表情识别的研究方法和研究现状,并分析了目前存在一些难点,比如 泛化能力较差、难以实用等。 其次,先介绍了卷积神经网络(ConvolutionalNeuralNetworks,CNN)的基本原理,然后介绍了 本文采用的手势识别算法的两个主要部分:基于全卷积神经网络(Fully convolutional network,FCN) 的手部分割算法和基于卷积神经网络的手势识别算法。该算法可识别10种手势。FCN实现了手部的 像素级精确分割,使得手势的识别更加容易,同时减少了对样本数的要求。 再次,先介绍了常见的视频识别算法,然后介绍了本文采用的基于光流卷积神经网络的表情识 别算法,可识别7种表情。使用稠密光流提取表情的动态特征可以减少对卷积神经网络提取特征的 要求,以及对样本数的要求。 最后,对这两个算法的各个环节分别进行了实验,并对实验结果进行了分析和总结。测试集上 手势识别的错误率为2.35%,表情识别的错误率为3.17%,并证明了算法的鲁棒性。在NAO机器人 平台上的实际使用效果评估进一步证明了基于手势识别和表情识别的人机交互的可行性。
2022-01-07 13:35:02 26.05MB 机器人
1
nao机器人抓取程序,python的代码程序亲测可用, 谢谢支持。
2021-12-22 11:41:02 1KB nao
1
nao机器人学习过程中java代码 package com.aldebaran.proxy; import com.aldebaran.proxy.Variant; import com.aldebaran.proxy.ALProxy; public class ALTextToSpeechProxy extends ALProxy { static { System.loadLibrary("jnaoqi"); } public ALProxy proxy; /// /// Default Constructor. /// public ALTextToSpeechProxy(String ip, int port) { super("ALTextToSpeech", ip, port); } /// /// Disables the notifications puted in ALMemory during the synthesis (TextStarted, TextDone, CurrentBookMark, CurrentWord, ...) /// public void disableNotifications() { Variant result = call("disableNotifications" ); // no return value } /// /// Enables the notifications puted in ALMemory during the synthesis (TextStarted, TextDone, CurrentBookMark, CurrentWord, ...) /// public void enableNotifications() { Variant result = call("enableNotifications" ); // no return value } /// /// Exits and unregisters the module. /// public void exit() { Variant result = call("exit" ); // no return value } /// /// Outputs the languages installed on the system. /// /// Array of std::string that contains the languages installed on the system. public String[] getAvailableLanguages() { Variant result = call("getAvailableLanguages" ); return (String[]) result.toStringArray(); } /// /// Outputs the available voices. The returned list contains the voice IDs. /// /// Array of std::string containing the voices installed on the system. public String[] getAvailableVoices() { Variant result = call("getAvailableVoices" ); return (String[]) result.toStringArray(); } /// /// Gets the name of the parent broker. /// /// The name of the parent broker. public String getBrokerName() { Variant result = call("getBrokerName" ); return result.toString(); } /// /// Returns the language currently used by the text-to-speech engine. /// /// Language of the current voice. public String getLanguage() { Variant result = call("getLanguage" ); return result.toString(); } /// /// Returns the encoding that should be used with the specified language. /// /// Language name (as a std::string). Must belong to the languages available in TTS. /// Encoding of the specified language. public String getLanguageEncoding( String pLanguage) { Variant vpLanguage; vpLanguage = new Variant(pLanguage); Variant result = call("getLanguageEncoding" ,vpLanguage); return result.toString(); } /// /// Retrieves a method's description. /// /// The name of the method. /// A structure containing the method's description. public Variant getMethodHelp( String methodName) { Variant vmethodName; vmethodName = new Variant(methodName); Variant result = call("getMethodHelp" ,vmethodName); return result; } /// /// Retrieves the module's method list. /// /// An array of method names. public String[] getMethodList() { Variant result = call("getMethodList" ); return (String[]) result.toStringArray(); } /// /// Retrieves the module's description. /// /// A structure describing the module. public Variant getModuleHelp() { Variant result = call("getModuleHelp" ); return result; } /// /// Returns the value of one of the voice parameters. The available parameters are: \"pitchShift\", \"doubleVoice\",\"doubleVoiceLevel\" and \"doubleVoiceTimeShift\" /// /// Name of the parameter. /// Value of the specified parameter public float getParameter( String pParameterName) { Variant vpParameterName; vpParameterName = new Variant(pParameterName); Variant result = call("getParameter" ,vpParameterName); return result.toFloat(); } /// /// Gets the method usage string. This summarises how to use the method. /// /// The name of the method. /// A string that summarises the usage of the method. public String getUsage( String name) { Variant vname; vname = new Variant(name); Variant result = call("getUsage" ,vname); return result.toString(); } /// /// Returns the voice currently used by the text-to-speech engine. /// /// Name of the current voice public String getVoice() { Variant result = call("getVoice" ); return result.toString(); } /// /// Fetches the current volume the text to speech. /// /// Volume (integer between 0 and 100). public float getVolume() { Variant result = call("getVolume" ); return result.toFloat(); } /// /// Returns true if the method is currently running. /// /// The ID of the method that was returned when calling the method using 'post' /// True if the method is currently running public Boolean isRunning( int id) { Variant vid; vid = new Variant(id); Variant result = call("isRunning" ,vid); return result.toBoolean(); } /// /// Loads a set of voice parameters defined in a xml file contained in the preferences folder.The name of the xml file must begin with ALTextToSpeech_Voice_ /// /// Name of the voice preference. public void loadVoicePreference( String pPreferenceName) { Variant vpPreferenceName; vpPreferenceName = new Variant(pPreferenceName); Variant result = call("loadVoicePreference" ,vpPreferenceName); // no return value } /// /// Just a ping. Always returns true /// /// returns true public Boolean ping() { Variant result = call("ping" ); return result.toBoolean(); } /// /// Performs the text-to-speech operations : it takes a std::string as input and outputs a sound in both speakers. It logs an error if the std::string is empty. String encoding must be UTF8. /// /// Text to say, encoded in UTF-8. public void say( String StringToSay) { Variant vstringToSay; vstringToSay = new Variant(StringToSay); Variant result = call("say" ,vstringToSay); // no return value } /// /// Performs the text-to-speech operations: it takes a std::string as input and outputs the corresponding audio signal in the specified file. /// /// Text to say, encoded in UTF-8. /// RAW file where to store the generated signal. The signal is encoded with a sample rate of 22050Hz, format S16_LE, 2 channels. public void sayToFile( String pStringToSay, String pFileName) { Variant vpStringToSay; vpStringToSay = new Variant(pStringToSay); Variant vpFileName; vpFileName = new Variant(pFileName); Variant result = call("sayToFile" ,vpStringToSay, vpFileName); // no return value } /// /// This method performs the text-to-speech operations: it takes a std::string, outputs the synthesis resulting audio signal in a file, and then plays the audio file. The file is deleted afterwards. It is useful when you want to perform a short synthesis, when few CPU is available. Do not use it if you want a low-latency synthesis or to synthesize a long std::string. /// /// Text to say, encoded in UTF-8. public void sayToFileAndPlay( String pStringToSay) { Variant vpStringToSay; vpStringToSay = new Variant(pStringToSay); Variant result = call("sayToFileAndPlay" ,vpStringToSay); // no return value } /// /// Changes the language used by the Text-to-Speech engine. It automatically changes the voice used since each of them is related to a unique language. If you want that change to take effect automatically after reboot of your robot, refer to the robot web page (setting page). /// /// Language name. Must belong to the languages available in TTS (can be obtained with the getAvailableLanguages method). It should be an identifier std::string. public void setLanguage( String pLanguage) { Variant vpLanguage; vpLanguage = new Variant(pLanguage); Variant result = call("setLanguage" ,vpLanguage); // no return value } /// /// Changes the parameters of the voice. The available parameters are: /// /// pitchShift: applies a pitch shifting to the voice. The value indicates the ratio between the new fundamental frequencies and the old ones (examples: 2.0: an octave above, 1.5: a quint above). Correct range is (1.0 -- 4), or 0 to disable effect. /// /// doubleVoice: adds a second voice to the first one. The value indicates the ratio between the second voice fundamental frequency and the first one. Correct range is (1.0 -- 4), or 0 to disable effect /// /// doubleVoiceLevel: the corresponding value is the level of the double voice (1.0: equal to the main voice one). Correct range is (0 -- 4). /// /// doubleVoiceTimeShift: the corresponding value is the delay between the double voice and the main one. Correct range is (0 -- 0.5) /// /// If the effect value is not available, the effect parameter remains unchanged. /// /// Name of the parameter. /// Value of the parameter. public void setParameter( String pEffectName, float pEffectValue) { Variant vpEffectName; vpEffectName = new Variant(pEffectName); Variant vpEffectValue; vpEffectValue = new Variant(pEffectValue); Variant result = call("setParameter" ,vpEffectName, vpEffectValue); // no return value } /// /// Changes the voice used by the text-to-speech engine. The voice identifier must belong to the installed voices, that can be listed using the 'getAvailableVoices' method. If the voice is not available, it remains unchanged. No exception is thrown in this case. For the time being, only two voices are available by default : Kenny22Enhanced (English voice) and Julie22Enhanced (French voice) /// /// The voice (as a std::string). public void setVoice( String pVoiceID) { Variant vpVoiceID; vpVoiceID = new Variant(pVoiceID); Variant result = call("setVoice" ,vpVoiceID); // no return value } /// /// Sets the volume of text-to-speech output. /// /// Volume (between 0.0 and 1.0). public void setVolume( float volume) { Variant vvolume; vvolume = new Variant(volume); Variant result = call("setVolume" ,vvolume); // no return value } /// /// returns true if the method is currently running /// /// the ID of the method to wait for public void stop( int id) { Variant vid; vid = new Variant(id); Variant result = call("stop" ,vid); // no return value } /// /// This method stops the current and all the pending tasks immediately. /// public void stopAll() { Variant result = call("stopAll" ); // no return value } /// /// Returns the version of the module. /// /// A string containing the version of the module. public String version() { Variant result = call("version" ); return result.toString(); } /// /// Wait for the end of a long running method that was called using 'post' /// /// The ID of the method that was returned when calling the method using 'post' /// The timeout period in ms. To wait indefinately, use a timeoutPeriod of zero. /// True if the timeout period terminated. False if the method returned. public Boolean wait( int id, int timeoutPeriod) { Variant vid; vid = new Variant(id); Variant vtimeoutPeriod; vtimeoutPeriod = new Variant(timeoutPeriod); Variant result = call("wait" ,vid, vtimeoutPeriod); return result.toBoolean(); } }
2021-12-11 20:45:52 13KB Nao机器人
1
NAO机器人实验报告(英文版) ①Get familiar with the operation of NAO robot, and understand the principle of how it is working. ②Learn how to use Choregraphe to program instructions to run NAO robot.
2021-11-23 22:18:10 2.28MB NAO机器人
1
详细介绍了nao机器人的参数性能。包括视觉听觉等等。
2021-11-22 20:41:01 603KB 说明
1
nao机器人labview编程的简单说明,自己也正好在学习机器人编程
2021-11-07 15:06:09 2.63MB nao labview
1
NAO机器人表演太极舞蹈
2021-10-23 17:58:05 2.05MB 机器人 NAO Python
1
nao机器人solidworks格式源文件,因太大故分开上传
2021-10-22 13:56:57 58MB nao机器人
1